ECMAScript 2019 (ES10) হলো জাভাস্ক্রিপ্টের একটি গুরুত্বপূর্ণ আপডেট যা ২০১৯ সালে প্রকাশিত হয়। ES10 পূর্ববর্তী সংস্করণগুলোর উপর ভিত্তি করে তৈরি এবং এতে বিভিন্ন নতুন ফিচার ও উন্নত বৈশিষ্ট্য যুক্ত করা হয়েছে, যা ডেভেলপারদের কোড লেখাকে আরও সহজ, কার্যকর এবং শক্তিশালী করে তোলে। ES10 এর মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে অ্যারে ম্যানিপুলেশন সহজ করা, অবজেক্ট ম্যানিপুলেশন উন্নত করা, স্ট্রিং ম্যানিপুলেশন সহজ করা, এবং প্রমিস ম্যানেজমেন্টে উন্নতি আনা।
rray.prototype.flat()
এবং Array.prototype.flatMap()
flat()
মেথডflat()
মেথডটি অ্যারের নেস্টেড এলিমেন্টগুলোকে ফ্ল্যাট করে এক মাত্রার অ্যারে রিটার্ন করে। এটি বিভিন্ন স্তরের নেস্টিং হ্যান্ডেল করতে পারে।
const nested = [1, [2, [3, 4]], 5];
const flattened = nested.flat(2);
console.log(flattened); // আউটপুট: [1, 2, 3, 4, 5]
ব্যাখ্যা: এখানে, flat(2)
ব্যবহার করে অ্যারের দুই স্তরের নেস্টিং ফ্ল্যাট করা হয়েছে।
flatMap()
মেথডflatMap()
মেথডটি প্রথমে প্রতিটি উপাদানের উপর নির্দিষ্ট একটি ফাংশন প্রয়োগ করে এবং তারপর ফলাফলকে ফ্ল্যাট করে।
const numbers = [1, 2, 3, 4];
const result = numbers.flatMap(num => [num, num * 2]);
console.log(result); // আউটপুট: [1, 2, 2, 4, 3, 6, 4, 8]
ব্যাখ্যা: flatMap()
প্রতিটি সংখ্যাকে [num, num * 2] অ্যারেতে রূপান্তর করে এবং এক মাত্রার অ্যারে তৈরি করে।
bject.fromEntries()
Object.fromEntries()
মেথডটি একটি কী-ভ্যালু পেয়ার থেকে অবজেক্ট তৈরি করে। এটি Object.entries()
এর বিপরীত কাজ করে।
const entries = [['name', 'Alice'], ['age', 25], ['city', 'Dhaka']];
const person = Object.fromEntries(entries);
console.log(person); // আউটপুট: { name: 'Alice', age: 25, city: 'Dhaka' }
ব্যাখ্যা: Object.fromEntries()
ব্যবহার করে অ্যারে অফ অ্যারে থেকে অবজেক্ট তৈরি করা হয়েছে, যা ডেটা ম্যানিপুলেশনে সহায়ক।
tring.prototype.trimStart()
এবং String.prototype.trimEnd()
trimStart()
এবং trimEnd()
মেথডগুলো স্ট্রিংয়ের শুরু বা শেষে স্পেস কেটে ফেলার জন্য ব্যবহৃত হয়। এগুলো পূর্বের trimLeft()
এবং trimRight()
এর সমতুল্য।
const str = ' Hello World ';
const trimmedStart = str.trimStart();
console.log(trimmedStart); // আউটপুট: 'Hello World '
const trimmedEnd = str.trimEnd();
console.log(trimmedEnd); // আউটপুট: ' Hello World'
ব্যাখ্যা: trimStart()
স্ট্রিংয়ের শুরু থেকে স্পেস কেটে ফেলে এবং trimEnd()
স্ট্রিংয়ের শেষে স্পেস কেটে ফেলে।
ymbol.prototype.description
Symbol.prototype.description
প্রপার্টিটি একটি সিম্বলের বর্ণনা (description) প্রদান করে। এটি সিম্বলগুলির ডিবাগিং এবং লগিংয়ে সহায়ক।
const sym = Symbol('unique');
console.log(sym.description); // আউটপুট: 'unique'
ব্যাখ্যা: description
প্রপার্টিটি সিম্বল তৈরি করার সময় দেওয়া বর্ণনা প্রদান করে, যা ডিবাগিং এবং লগিংয়ে সহায়ক।
Optional Catch Binding এর মাধ্যমে catch
ব্লকে error
প্যারামিটার বাদ দেওয়া যায় যদি তা প্রয়োজন না হয়। এটি কোডকে আরও সংক্ষিপ্ত এবং পরিষ্কার করে তোলে।
try {
throw new Error('Something went wrong!');
} catch {
console.log('An error occurred.');
}
/*
আউটপুট:
An error occurred.
*/
ব্যাখ্যা: এখানে, catch
ব্লকে error
প্যারামিটার ব্যবহার করা হয়নি কারণ তাতে প্রয়োজন ছিল না।
Function.prototype.toString()
উন্নতিES10 এ Function.prototype.toString()
মেথডটি এখন ফাংশনের সোর্স কোডকে আরও সঠিকভাবে রিটার্ন করে।
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet.toString());
/*
আউটপুট:
function greet(name) {
return `Hello, ${name}!`;
}
*/
ব্যাখ্যা: ES10 এ toString()
মেথডটি ফাংশনের সম্পূর্ণ সোর্স কোড প্রদান করে, যা ডিবাগিং এবং ডকুমেন্টেশনে সহায়ক।
rray.prototype.sort()
StabilityES10 এ Array.prototype.sort()
মেথডটি স্টেবিল করা হয়েছে, অর্থাৎ একই মানের উপাদানগুলির ক্রম অপরিবর্তিত থাকে। পূর্বের সংস্করণে এটি নিশ্চিত করা হয়নি।
const items = [
{ name: 'John', age: 25 },
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 }
];
items.sort((a, b) => a.age - b.age);
console.log(items);
/*
আউটপুট:
[
{ name: 'John', age: 25 },
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 }
]
*/
ব্যাখ্যা: একই age
মানের উপাদানগুলির ক্রম অপরিবর্তিত থাকে, যা কোডের পূর্বাভাসযোগ্যতা বাড়ায়।
SON.stringify()
ImprovementsES10 এ JSON.stringify()
মেথডের কিছু উন্নতি করা হয়েছে, যেমন সীমিত সংখ্যক স্পেসের জন্য ইন্টিজার প্রদান করা।
const obj = { name: 'Alice', age: 25 };
const jsonString = JSON.stringify(obj, null, 2);
console.log(jsonString);
/*
আউটপুট:
{
"name": "Alice",
"age": 25
}
*/
ব্যাখ্যা: JSON.stringify()
এর তৃতীয় প্যারামিটার হিসেবে স্পেসের সংখ্যা নির্ধারণ করা হয়েছে, যা JSON স্ট্রিংকে ফরম্যাটেড করে তোলে।
ES10 এ JSON.stringify()
এখন সুসঙ্গত স্ট্রিং তৈরি করে, যা ইউনিকোড এ্যাস্কেপসের মাধ্যমে করা হয়।
const obj = { smile: '😊' };
const jsonString = JSON.stringify(obj);
console.log(jsonString); // আউটপুট: {"smile":"\uD83D\uDE0A"}
ব্যাখ্যা: ইউনিকোড ক্যারেক্টারগুলোকে এ্যাস্কেপ করে সুসঙ্গত JSON স্ট্রিং তৈরি করা হয়েছে।
for-await-of
এবং async/await
এর মাধ্যমে অ্যাসিঙ্ক্রোনাস কোড লেখা সহজ এবং রিডেবল হয়।Array.prototype.flat()
, Array.prototype.flatMap()
, Object.fromEntries()
, এবং Object.getOwnPropertyDescriptors()
মেথডগুলো ডেটা ম্যানিপুলেশনে আরও কার্যকরী করে তোলে।trimStart()
এবং trimEnd()
মেথডগুলো স্ট্রিংয়ের শুরু বা শেষে নির্দিষ্ট সংখ্যক ক্যারেক্টার যোগ করা সহজ করে।Promise.prototype.finally()
মেথডটি প্রমিসের শেষে কিছু কোড চালানো সহজ করে, যা কোডের রিডেবিলিটি ও মেইনটেনেবিলিটি বাড়ায়।Symbol.prototype.description
প্রপার্টি ডিবাগিং এবং লগিংয়ে সহায়ক।ECMAScript 2019 (ES10) জাভাস্ক্রিপ্টের ভাষাকে আরও শক্তিশালী এবং কার্যকর করে তোলে। অ্যারে ম্যানিপুলেশনের জন্য flat()
এবং flatMap()
, অবজেক্ট ম্যানিপুলেশনের জন্য Object.fromEntries()
, স্ট্রিং ম্যানিপুলেশনের জন্য trimStart()
এবং trimEnd()
, এবং প্রমিস ম্যানেজমেন্টের জন্য Promise.prototype.finally()
এর মতো ফিচারগুলো ডেভেলপারদের কোড লেখাকে আরও সহজ, সংক্ষিপ্ত এবং রিডেবল করে তোলে। এছাড়াও, রেগুলার এক্সপ্রেশন এবং সিম্বলসের উন্নতি ডেটা হ্যান্ডলিংকে আরও কার্যকরী করে তোলে।
এই নতুন বৈশিষ্ট্যগুলো শেখা এবং ব্যবহার করা ডেভেলপারদের কোডের গুণগত মান এবং কার্যকারিতা বৃদ্ধি করতে সহায়ক, যা বড় এবং জটিল প্রজেক্টগুলির ক্ষেত্রে বিশেষভাবে উপকারী।
Array.prototype.flat()
, Array.prototype.flatMap()
, Object.fromEntries()
, এবং Promise.prototype.finally()
মেথডগুলো ব্যবহার করে বিভিন্ন উদাহরণ তৈরি করুন।for-await-of
এবং async/await
ব্যবহার করে অ্যাসিঙ্ক্রোনাস ফাংশনগুলো লিখে দেখুন এবং তাদের কার্যকারিতা বুঝুন।Object.entries()
, Object.values()
, এবং Object.getOwnPropertyDescriptors()
মেথডগুলো ব্যবহার করে অবজেক্ট ম্যানিপুলেশন অনুশীলন করুন।trimStart()
এবং trimEnd()
মেথডগুলো স্ট্রিং ম্যানিপুলেশনে ব্যবহার করে বিভিন্ন উদাহরণ তৈরি করুন।ES10 এর নতুন বৈশিষ্ট্যগুলোকে ভালোভাবে বুঝে এবং প্রয়োগ করে আপনি আপনার জাভাস্ক্রিপ্ট প্রোগ্রামিং দক্ষতাকে আরও উন্নত এবং কার্যকরী করতে পারবেন, যা আপনার কোডকে আরও নির্ভরযোগ্য এবং শক্তিশালী করে তুলবে।
Read more